package main

import (
	"bufio"
	"fmt"
	"net"
	"os"
	"strings"
)

func processConn(conn net.Conn){
	// 3.与客户端连接
	var tmp [128]byte
	reader:=bufio.NewReader(os.Stdin)
	for{
		n,err:=conn.Read(tmp[:])
		if err !=nil {
			fmt.Println("读连接失败")
			return
		}
		fmt.Println(string(tmp[:n]))
		fmt.Print("请回复: ")
		msg,_:=reader.ReadString('\n') //读到换行
		msg=strings.TrimSpace(msg)
		// fmt.Scanln(&msg)
		if msg =="exit"{
			break
		}
		conn.Write([]byte(msg))
	}
}

// tcp server端
func main(){
	// 1.本地端口启动服务
	listener,err:=net.Listen("tcp","127.0.0.1:20000")
	if err !=nil{
		fmt.Println("启动失败")
		return
	}
	// 2.等待别人来与我循环建立连接
	for {
		conn,err:=listener.Accept()
		if err !=nil{
			fmt.Println("连接失败")
			return
		}
		go processConn(conn) //开启并发
	}
}
